package com.ssy.lingxi.purchase.service.tender;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.purchase.api.dto.request.tender.*;
import com.ssy.lingxi.purchase.entity.tender.InviteTenderMember;
import com.ssy.lingxi.search.api.model.request.SimpleIdListRequest;
import com.ssy.lingxi.workflow.api.model.vo.response.ComplexTaskDefVO;
import org.springframework.data.domain.Page;

/**
 * 招标管理类
 * @author jw.chen
 * @version 2.0.0
 * @date 2021/3/1
 */
public interface ISubmitTenderService {
    /**
     * 查询招标
     */
    Page<InviteTenderMember> getInviteTenderList(UserLoginCacheDTO sysUser, InviteTenderQueryRequest inviteTenderQueryRequest);

    /**
     * 查询投标列表
     * @param sysUser
     * @param submitTenderQueryRequest
     * @return
     */
    Page<InviteTenderMember> getSubmitTenderList(UserLoginCacheDTO sysUser, SubmitTenderQueryRequest submitTenderQueryRequest);

    /**
     * 查询招标
     * @param inviteTenderId
     */
    InviteTenderMember getInviteTenderMember(UserLoginCacheDTO sysUser, Long inviteTenderId);

    /**
     * 查询投标信息
     * @param sysUser
     * @param submitTenderId
     * @return
     */
    InviteTenderMember getSubmitTenderMember(UserLoginCacheDTO sysUser, Long submitTenderId);

    /**
     * 投标报名
     * @param sysUser
     * @param submitTenderRegisterRequest
     * @return
     */
    String submitTenderRegister(UserLoginCacheDTO sysUser, SubmitTenderRegisterRequest submitTenderRegisterRequest);

    /**
     * 提交资格预审
     * @param submitQualificationsRequest
     * @return
     */
    String submitQualifications(UserLoginCacheDTO sysUser, SubmitQualificationsRequest submitQualificationsRequest);

    /**
     * 新增投标
     * @param submitTenderInfoRequest
     * @return
     */
    String saveSubmitTender(UserLoginCacheDTO sysUser, SubmitTenderRequest submitTenderInfoRequest);

    /**
     * 提交审核投标
     * @param sysUser
     * @param simpleIdListRequest
     * @return
     */
    String submitCheckSubmitTender(UserLoginCacheDTO sysUser, SimpleIdListRequest simpleIdListRequest);

    /**
     * 审核投标
     * @param sysUser
     * @param checkRequest
     * @return
     */
    String checkSubmitTender(UserLoginCacheDTO sysUser, CheckRequest checkRequest);

    /**
     * 批量审核投标通过
     * @param sysUser
     * @param simpleIdListRequest
     * @return
     */
    String checkSubmitTenderBatch(UserLoginCacheDTO sysUser, SimpleIdListRequest simpleIdListRequest);

    /**
     * 提交投标
     * @param sysUser
     * @param simpleIdListRequest
     * @return
     */
    String submitSubmitTenderBatch(UserLoginCacheDTO sysUser, SimpleIdListRequest simpleIdListRequest);

    /**
     * 查询流程步骤
     * @param sysUser
     * @param submitTenderId
     * @return
     */
    ComplexTaskDefVO getSubmitTenderProcess(UserLoginCacheDTO sysUser, Long submitTenderId);
}
